#ifndef _ARR_STACK_H
#define _ARR_STACK_H

typedef int ElementType;

typedef struct ArrStackNode
{
    ElementType element;
} ArrStackNode;

typedef struct Arr_Stack
{
    int size;
    int curLength;
    int headIdx;
    ArrStackNode *basicArr;
}Arr_Stack;

extern Arr_Stack *InitArrStack(int size);

extern void Push_AS(Arr_Stack* stack, ElementType newElem);

extern ElementType Pop_AS(Arr_Stack *stack);

extern ElementType Top_AS(Arr_Stack *stack);

extern void Clear(Arr_Stack *stack);

#endif